from cnocr import CnOcr
from datetime import datetime

#pip install cnocr[ort-cpu]
#pip install cnocr[ort-cpu] -i https://mirrors.aliyun.com/pypi/simple
print(datetime.now().strftime("1.%Y-%m-%d %H:%M:%S.%f")[:-3])  # 去掉最后三位毫秒后的零
img_fp = './sc2-test001.png'
print(datetime.now().strftime("2.%Y-%m-%d %H:%M:%S.%f")[:-3])  # 去掉最后三位毫秒后的零

# en_PP-OCRv3_det
# db_shufflenet_v2
ocr = CnOcr(det_model_name='en_PP-OCRv3_det')  # 所有参数都使用默认值
print(datetime.now().strftime("3.%Y-%m-%d %H:%M:%S.%f")[:-3])  # 去掉最后三位毫秒后的零
out = ocr.ocr(img_fp)
print(datetime.now().strftime("4.%Y-%m-%d %H:%M:%S.%f")[:-3])  # 去掉最后三位毫秒后的零

print("原始识别结果:")
print(out)

# 筛选置信度超过45%的结果
confidence_threshold = 0.45  # 65%的置信度阈值
high_confidence_results = []

for item in out:
    # 每个item是一个字典，包含'text', 'score', 'position'三个键
    # 根据CnOCR的文档，置信度存储在'score'键中
    text = item['text']
    confidence = item['score']
    if confidence > confidence_threshold:
        high_confidence_results.append(text)

print(f"\n筛选后（置信度>65%）的结果:")
print(high_confidence_results)

# 保存到字符数组（Python中列表就是动态数组）
result_array = high_confidence_results
print(f"\n保存到字符数组的结果:")
print(result_array)

# 可以直接使用这个数组进行后续处理
# 例如，将结果连接成一个字符串
if result_array:
    combined_text = ' '.join(result_array)
    print(f"\n合并后的文本: {combined_text}")
else:
    print("\n没有找到置信度超过65%的识别结果")

for str1 in result_array:
    print('劈开的内容:' + str1)
print(datetime.now().strftime("5.%Y-%m-%d %H:%M:%S.%f")[:-3])  # 去掉最后三位毫秒后的零